import {
    message
  } from 'antd';

// 迭代递归法：深拷贝对象与数组
function deepClone(obj) {
    if (!isObject(obj)) {
        throw new Error('obj 不是一个对象！')
    }

    let isArray = Array.isArray(obj)
    let cloneObj = isArray ? [] : {}
    for (let key in obj) {
        cloneObj[key] = isObject(obj[key]) ? deepClone(obj[key]) : obj[key]
    }

    return cloneObj
}

// 判断是否为对象
function isObject(o) {
    return (typeof o === 'object' || typeof o === 'function') && o !== null
}


const copyToBoard = (value) => {
    console.log('⚡',value);
    let input_dom = document.createElement('input');//创建input元素
    input_dom.value = value;//添加需要复制的内容到value属性
    document.body.appendChild(input_dom);//向页面底部追加输入框
    input_dom.select();//选择input元素
    document.execCommand("Copy");//执行复制命令
    //复制之后再删除元素，否则无法成功赋值
    input_dom.remove();//删除动态创建的节点
    message.info('复制成功！')
}

const getRandomColor = function(){
    // let r = Math.floor(Math.random() * 255)
    // let g = Math.floor(Math.random() * 255)
    // let b = Math.floor(Math.random() * 255)
    // return `rgb(${r}, ${g}, ${b})`
    return '#' + (Math.floor(Math.random() * 0xffffff).toString(16).padStart(6, '0'))
}

// 判断两个数组是否有相同的元素的方法（不限顺序）
const isArrayEqual = function(arr1, arr2) {
    const a1 = arr1.map((i) => i)
    let a2 = arr2.map((i) => i)
    let tempArr = []
    if (a1.length !== a2.length) {
      return false
    } else {
      for (let i = 0; i < a1.length; i++) {
        if (a2.indexOf(a1[i]) !== -1) {
          a2.splice(a2.indexOf(a1[i]), 1)
          tempArr.push(a1[i])
        } else {
          tempArr = []
          break
        }
      }
      return tempArr.length === arr2.length
    }
  }
  

  const getDaysDifference = (date1, date2)  => {
    const oneDay = 24 * 60 * 60 * 1000; // 一个自然日的毫秒数
   
    const time1 = date1.getTime(); // 转换为毫秒数
    const time2 = date2.getTime(); // 转换为毫秒数
   
    // const diff = Math.abs(time1 - time2); // 计算差异的绝对值
    const diff = time1 - time2; // 计算差异的绝对值
   
    return Math.round(diff / oneDay); // 将差异转换为天数并返回
  }
export { deepClone, copyToBoard, getRandomColor,isArrayEqual ,getDaysDifference}